A typical robot cleaner determines an area to be cleaned by using an ultrasonic wave sensor disposed in its body while traveling along an outline of the area to be cleaned that is enclosed by a wall or an obstacle, and plans a cleaning course to clean the area to be cleaned. Next, the robot cleaner calculates its running distance and current position based on a signal that is detected by a sensor that detects the number of revolutions per minute and the rotation angle of a wheel of the robot cleaner. The robot cleaner drives the wheel to travel along the planned cleaning course. However, in such a position recognition method, errors can occur between the calculated running distance and current position obtained based on the signal detected by the sensor, and the actual running distance and position. The error is generated by a slip of the wheel or an uneven surface of the area to be cleaned. As the robot cleaner travels, the position recognition error accumulates. Therefore, the robot cleaner may deviate from the planned cleaning course due to the accumulated position recognition error. As a result, there is an occasion where some of the area to be cleaned remains unclean, or the same area is repeatedly cleaned. Accordingly, the working efficiency of the robot cleaner deteriorates.